package com.geek.base.ch02.work;

import java.net.Socket;
import java.util.Scanner;

/*
 *@Date 2025/11/8
 *@Author wangpeng
 *@Description
 * * 需求1：验证歌德巴赫猜想
 * 输入的是0，表示想退出输入；
 * 对任何一个不小于6的偶数a，总可以表示成两个奇素数的和；a= x+y;
 *    8 = 3 + 5;
 * 奇素数：奇数，素数：只能被1或者本身整除的数（质数）
 */
public class Demo1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入数字：");
            int num = sc.nextInt();

            //输入的是0，表示想退出输入
            if (num == 0) break;

            //输入一个不小于6的偶数
            if (num < 6 || num % 2 != 0) {
                System.out.println("请再次输入数字，要求为一个不小于6的偶数");
                continue;
            }

            //判断是否可以组装成奇素数的和
            for (int x = 3; x <= num / 2; x += 2) {
                if (isPrimary(x) && isPrimary(num - x)) {
                    System.out.println(num + " = " + x + " + " + (num - x));
                }
            }
        }
    }

    //判断数字是否是奇素数
    public static boolean isPrimary(int x) {
        for (int i = 3; i <= x / 2; i += 2) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
}
